【ICCV 2017论文笔记】我们应当如何理解视频中的人类行为?
本文经授权转自知乎
最近ICCV 2017公布了论文录用的情况,我照例扫了一遍论文列表寻找感兴趣的文章。“What Actions are Needed for Understanding Human Actions in Videos?”[arXiv 链接] 一文是我觉得很有趣的一篇文章。这篇论文并没有提出或改进任何方法,而是通过各种小实验,对目前视频行为理解的各种数据库和方法进行了细致的讨论和思考。其中许多观点和结论我觉得对于做视频行为理解的研究人员是有不少启发的。这篇笔记里我简单的进行一些记录,供自己和大家参考。感兴趣的话还是推荐阅读论文原文,从论文写作角度来看这是一篇写的非常好的论文。
背景介绍
该文主要对视频行为理解中的行为分类( Action Recognition) 和时序行为检测( Temporal
Action Detection) 两个问题进行了讨论,这两个领域及相关工作的具体介绍可见我之前的文章行为识别介绍,时序行为检测介绍。简单来说,行为分类是要给一段分割好的短视频(通常只包含一段人类动作)进行动作种类的分类,而时序行为检测则主要针对较长的未分割视频,除了要对视频中人类行为的种类进行分类外,还需要定位动作的时序边界。在这两个方向中,该文则更注重对行为分类问题的讨论。
深度学习(或者说数据驱动的方法)在各个领域的发展离不开各个领域中数据库的发展,视频行为理解领域亦然。从最早的非常简单的KTH数据库,到包含各类运动,简单日常行为的UCF101, THUMOS, HMDB-51等数据库,再到这两年类别数量更大,视频数目也更多的ActivityNet, Charades等数据库,数据库的发展也一步一步推动着视频行为理解方法的发展。本文主要针对Charades数据库进行了分析,原因大概是因为该数据库就是本文作者提出的。实际中,这两年相关的论文在Charades数据库上进行实验的似乎并不多见。
本文的结构主要是以几个问句为主,通过对疑问进行分析来将讨论逐步推进,每个大问题下还包含一些小问题。本文主要的问题/章节包括以下几个。
What are the right questions to ask?
What are existing approaches learning?
Where should we look next?
这几个问题从现有数据库及任务本身的分析,到算法的分析,最后到未来发展方向的展望,可以说是层层递进。下面就开始对各个部分进行简单的介绍。
What are the right questions to ask?
这部分内容对视频行为理解任务本身进行了一些基础的探讨,主要的出发点是研究人类本身如何理解视频中的人类行为。主要包括两个子问题。
(1) What are the right activity categories?
对于图像中的物体,其语义的类别通常是非常明确的,一般不存在混淆。然而,用动词来定义的人类动作其数目则要少很多,且常常存在一定的歧义性。举例来说,“跑”,“跳”
这些动作本身含有比较明确的定义,而 “拿“,”取“ 这些动作则模糊的多,需要和名词结合才能明确其意义,比如”拿衣服“,”取药“等。因此,动词或是动词和名词的组合构成了一个动作的最基本定义。
该文召集了一些志愿者,在Charades数据集上进行了一些人类学习实验。实验结果表明人类对于动词比起名词更容易感到混淆。进一步的实验也表明了单独的动词不能够对动作进行足够清晰的描述。因此,动词和名词的组合在对动作的描述上是更加清晰的。
(2) Do Activities have temporal extents?
对于图像中的物体来说,其边界通常是非常明确的,对应的学习任务包括目标检测以及目标分割。然而,人类行为的时序边界则常常是不够明确的。
该文同样进行了一些人类学习实验,实验的内容为让人类标记者重新来对视频中的行为边界进行标定,并与数据库的真值进行比较。实验主要有以下几点观察:
[1] 在Charades上,人类平均只能达到72.5%的重叠率(IoU),在Multi-THUMOS数据集中,则只能达到58.7%。可见即便对于人类,视频中行为的时序边界也是比较模糊的。
[2] 动作的结束时间点比起开始时间点存在更多混淆
[3] 时间更长的行为其边界对于人类来说混淆更小。这表明时间较短的动作需要更小心的标注
[4] 时序边界的模糊性在各种动作种类中是广泛存在的
那么关于时序边界,可以进一步的问以下的问题:
Can we evaluate temporal localization?
即在时序动作边界模糊的情况下,我们是否能够来评估时序动作定位(时序动作检测)呢?略去实验,该文给出的结论是:尽管时序边界存在模糊性,目前的数据集还是允许我们对动作的时序边界进行理解,学习以及评估的。
Should we evaluate temporal localization?
这是该部分的最后一个问题,即时序动作检测/定位是否值得我们去做。该文衡量了一个假定的完美的行为分类器,在行为检测任务上进行实验,在Charades数据集上达到了为56.9%,大约五倍于该数据集上的state-of-the-art的精度。这部分作者讲的很不清楚,此处作者应该是用某种方法生成了时序动作的proposal,再用完美分类器对这些proposal进行分类,从而实现检测的效果。
基于这一点,作者认为对于较短的视频,专注于行为分类任务比起行为检测任务能够带来更多的检测精度提升。所以该文的后面部分主要对行为分类任务进行讨论。注意此处作者的观点,是认为在“短视频”情况下(此处使用的是Charades数据集),提高分类器的精度更容易带来检测精度的提高。但我认为这个仅为该数据集的情况。对于其他一些数据集,如ActivityNet,其分类精度已经相当高了(91%左右),此时比起继续提高分类器的精度,提高时序动作边界的定位质量,能够带来更多检测精度的提高。
What are existing approaches learning?
该部分则主要讨论了现有的模型在学习行为分类的过程中到底学到了什么。这部分采用了几种目前比较主流的行为分类算法,以Charades数据集为主进行了实验分析。
(1) Analyzing correct and incorrect detections
该文首先给出了一个例子,即Two-Stream方法在Charades数据集上的测试结果,第一行为正确的检测,后面几行为不同的错误检测例子。
从这张图片中,我们可以对模型的缺陷进行如下的分析
模型需要学习区分相似的行为种类,具体讨论见(2)
模型需要发展时序理解的能力,具体讨论见(3)
模型需要理解人本身的存在,具体讨论见(4)
该图则表现了不同算法的预测结果的分析。可以看出对于动词和名词,均存在显著的混淆情况。
该图表现了不同的混淆程度对精度的影响。此处的复杂度,如动词复杂度指同一个动词,不同名词组合的数量。数量越多表明混淆情况比较严重。大体上可以得出,混淆情况越高,所能达到的精度一般越低。
(2) Training Data
该部分主要分析了训练数据以及动作类别的影响。在训练模型时,使用更多的数据通常能获得更好的效果,但具体而言如何增加数据才能有效的提高效果呢?本节对样本数量较多与较少的动作类别分别进行了分析
小样本数量的动作类别
作者发现,对于大部分动作种类能够获益于增加训练数据数量,即便是其他种类的样本数量
若将数据集中所有种类的动作的样本数量限制到100,作者发现拥有更多相似动作的动作类别会有更大的精度下降。这个观察有一个重要的启示,即不考虑动作相似性的情况下,进行样本数量的平衡可能是无益的。
大样本数量的动作类别
大样本数量的动作可能更难学习,因为样本数量多,其类内的姿态多样性会更大。此外,与其共享名词(即有相同的交互对象,这点我认为可能是该数据集特性)的动作也更多,使其更易被混淆
作者发现,现在很多方法的精度提高,常常是以为在小样本数目的动作类别上做的更好了,而非是大样本数量的动作种类。或许将大样本数量的动作进行细分是不错的方法
(3) Temporal reasoning
这部分主要讨论时序上的动作理解。
从该图可以看出,在分类任务上,现在的方法能更好的处理时间较长的动作,较短的动作因为时序信息较少所以更难。此外,作者认为结合时序上的预测结果是non-trivial problem, 即一个有意义的问题。实际上今年有不少工作都是通过时序结果的编码来提高分类的精度。
(4) Person-based Reasoning
这一部分作者主要有几点观点/结论
基于人体的理解会有助于提高目前行为识别算法的精度
人的姿态在人类行为识别中起到很大的作用
Where should we look next?
最后一部分中,作者对可以提高的方向进行了一些分析。主要的方式是提供一些额外的信息,观察在拥有额外信息的情况下,模型能够多大的提高。主要包括以下几种。
名词,即已知交互物体
动词,即已知动作类型
意图,即对行为进行聚类,几种相似的行为作为一种意图,或许可以认为是一大类吧
时间,对于每帧视频,其距离动作开始和结束时间的时序距离给出
姿态,将所有姿态聚类成500类,提供姿态类别信息
实验结果主要是对模型所应该侧重的发展方向起一定的启示作用。
小结
在做视频行为分析的研究工作时,很多时候会忽略掉一些基础的信息,而是埋头于模型调参。而读完这篇文章我最大的感受是,在解决一个具体问题的时候,对问题进行细致的思考和分析非常重要,能够使得自己在设计方法是更有针对性,也更有效率。上面的比较内容比起原文很简略,若看完后有兴趣还是非常推荐阅读原文。
【小广告】极视角招视觉算法工程师了!!!
在这里,你可以进行计算机视觉算法的研发和优化,参与到算法的实际落地应用项目,接触到市场前沿的视觉技术解决方案,更有女神CTO面对面指导交流!
有意向的请联系小助手(微信:Extreme-Vision)或者直接发简历到
developer@extremevision.mo。期待您的加入!